package br.com.playonline.domain;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name = "bolao")
public class Bolao implements Serializable {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Long id;
	private static final long serialVersionUID = 1L;
	private String identificadorGrupo;
	private Date dtSorteio;
	private Integer qtdCotas;
	private Double valorCota;
	private Integer qtdNumerosMarcado;
	private String seqObrigatoria;
	private String seqIgnorada;
	private Integer qtdJogos;
	@Enumerated(EnumType.ORDINAL)
	@Column(nullable = false)
	private TipoDeJogo tipoDeJogo;

	@OneToMany(mappedBy = "bolao", fetch = FetchType.LAZY, cascade = CascadeType.ALL, targetEntity = Jogo.class)
	private List<Jogo> jogos;
	
	@OneToMany(mappedBy = "bolao",cascade = CascadeType.DETACH)
	private List<CarrinhoBolao> carrinhoBolaos;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getIdentificadorGrupo() {
		return identificadorGrupo;
	}

	public void setIdentificadorGrupo(String identificadorGrupo) {
		this.identificadorGrupo = identificadorGrupo;
	}

	public Date getDtSorteio() {
		return dtSorteio;
	}

	public void setDtSorteio(Date dtSorteio) {
		this.dtSorteio = dtSorteio;
	}

	public Integer getQtdCotas() {
		return qtdCotas;
	}

	public void setQtdCotas(Integer qtdCotas) {
		this.qtdCotas = qtdCotas;
	}

	public Double getValorCota() {
		return valorCota;
	}

	public void setValorCota(Double valorCota) {
		this.valorCota = valorCota;
	}

	public Integer getQtdNumerosMarcado() {
		return qtdNumerosMarcado;
	}

	public void setQtdNumerosMarcado(Integer qtdNumerosMarcado) {
		this.qtdNumerosMarcado = qtdNumerosMarcado;
	}

	public String getSeqObrigatoria() {
		return seqObrigatoria;
	}

	public void setSeqObrigatoria(String seqObrigatoria) {
		this.seqObrigatoria = seqObrigatoria;
	}

	public String getSeqIgnorada() {
		return seqIgnorada;
	}

	public void setSeqIgnorada(String seqIgnorada) {
		this.seqIgnorada = seqIgnorada;
	}

	public Integer getQtdJogos() {
		return qtdJogos;
	}

	public void setQtdJogos(Integer qtdJogos) {
		this.qtdJogos = qtdJogos;
	}

	public List<Jogo> getJogos() {
		return jogos;
	}

	public void setJogos(List<Jogo> jogos) {
		this.jogos = jogos;
	}

	public TipoDeJogo getTipoDeJogo() {
		return tipoDeJogo;
	}

	public void setTipoDeJogo(TipoDeJogo tipoDeJogo) {
		this.tipoDeJogo = tipoDeJogo;
	}

	public List<CarrinhoBolao> getCarrinhoBolaos() {
		return carrinhoBolaos;
	}

	public void setCarrinhoBolaos(List<CarrinhoBolao> carrinhoBolaos) {
		this.carrinhoBolaos = carrinhoBolaos;
	}
	
}
